/*Header file for letkf4d.c
This header file defines function letkf3d().

Author: Shiming Yang
Date: Nov. 2009
*/

#ifndef H_LETKFMOD
#define H_LETKFMOD

#ifdef __cplusplus
extern "C" {
#endif

#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<math.h>
#include "cblas.h"
#include "f2c.h"
#include "clapack.h"
#include "lapack_wrapper.h"
#include "matvec.h"
#include "analysis.h"

void letkf_local(int num_ensemble, int radius, int numpar, int numline, 
				int numobs, double *px_bar, float *px_tlat, float* px_tlon, 
				float *px_zlvl, double *py_bar, float *py_clat, 
				float *py_clon, double *obs, float *obs_lat, 
				float *obs_lon, double **pxen_bar, double **pxen_mass, 
				double **pyen_con);

int matrix_sqrt_invert_once(int n, double *X, double *Y, double *Z, 
				double *C, double *tempz, double *eigval, double *eigvec,  
				double sqrtcon);

#ifdef __cplusplus
}
#endif

#endif
